home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / MiscTool.p < prev    next >
Encoding:
Text File  |  1992-02-26  |  10.8 KB  |  396 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: MiscTool.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-92
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT MISCTOOL;
  11. INTERFACE
  12. USES TYPES;
  13. CONST
  14.  
  15. { Error codes }
  16. badInputErr = $0301;  { bad input parameter }
  17. noDevParamErr = $0302;  { no device for input parameter }
  18. taskInstlErr = $0303;  { task already installed error }
  19. noSigTaskErr = $0304;  { no signature in task header }
  20. queueDmgdErr = $0305;  { queue has been damaged error }
  21. taskNtFdErr = $0306;  { task was not found error }
  22. firmTaskErr = $0307;  { firmware task was unsuccessful }
  23. hbQueueBadErr = $0308;  { heartbeat queue damaged }
  24. unCnctdDevErr = $0309;  { attempted to dispatch to unconnected device }
  25. idTagNtAvlErr = $030B;  { ID tag not available }
  26. notInList = $0380;
  27. invalidTag = $0381;  { correct signature value not found in header }
  28. alreadyInQueue = $0382;
  29. badTimeVerb = $0390;
  30. badTimeData = $0391;
  31.  
  32. { System Fail Codes }
  33. pdosUnClmdIntErr = $0001;  { ProDOS unclaimed interrupt error }
  34. divByZeroErr = $0004;  { divide by zero error }
  35. pdosVCBErr = $000A;  { ProDOS VCB unusable }
  36. pdosFCBErr = $000B;  { ProDOS FCB unusable }
  37. pdosBlk0Err = $000C;  { ProDOS block zero allocated illegally }
  38. pdosIntShdwErr = $000D;  { ProDOS interrupt w/ shadowing off }
  39. stupVolMntErr = $0100;  { can't mount system startup volume }
  40.  
  41. { Battery Ram Parameter Reference Numbers }
  42. p1PrntModem = $0000;
  43. p1LineLnth = $0001;
  44. p1DelLine = $0002;
  45. p1AddLine = $0003;
  46. p1Echo = $0004;
  47. p1Buffer = $0005;
  48. p1Baud = $0006;
  49. p1DtStpBits = $0007;
  50. p1Parity = $0008;
  51. p1DCDHndShk = $0009;
  52. p1DSRHndShk = $000A;
  53. p1XnfHndShk = $000B;
  54. p2PrntModem = $000C;
  55. p2LineLnth = $000D;
  56. p2DelLine = $000E;
  57. p2AddLine = $000F;
  58. p2Echo = $0010;
  59. p2Buffer = $0011;
  60. p2Baud = $0012;
  61. p2DtStpBits = $0013;
  62. p2Parity = $0014;
  63. p2DCDHndShk = $0015;
  64. p2DSRHndShk = $0016;
  65. p2XnfHndShk = $0017;
  66. dspColMono = $0018;
  67. dsp40or80 = $0019;
  68. dspTxtColor = $001A;
  69. dspBckColor = $001B;
  70. dspBrdColor = $001C;
  71. hrtz50or60 = $001D;
  72. userVolume = $001E;
  73. bellVolume = $001F;
  74. sysSpeed = $0020;
  75. slt1intExt = $0021;
  76. slt2intExt = $0022;
  77. slt3intExt = $0023;
  78. slt4intExt = $0024;
  79. slt5intExt = $0025;
  80. slt6intExt = $0026;
  81. slt7intExt = $0027;
  82. startupSlt = $0028;
  83. txtDspLang = $0029;
  84. kyBdLang = $002A;
  85. kyBdBuffer = $002B;
  86. kyBdRepSpd = $002C;
  87. kyBdRepDel = $002D;
  88. dblClkTime = $002E;
  89. flashRate = $002F;
  90. shftCpsLCas = $0030;
  91. fstSpDelKey = $0031;
  92. dualSpeed = $0032;
  93. hiMouseRes = $0033;
  94. dateFormat = $0034;
  95. clockFormat = $0035;
  96. rdMinRam = $0036;
  97. rdMaxRam = $0037;
  98. langCount = $0038;
  99. lang1 = $0039;
  100. lang2 = $003A;
  101. lang3 = $003B;
  102. lang4 = $003C;
  103. lang5 = $003D;
  104. lang6 = $003E;
  105. lang7 = $003F;
  106. lang8 = $0040;
  107. layoutCount = $0041;
  108. layout1 = $0042;
  109. layout2 = $0043;
  110. layout3 = $0044;
  111. layout4 = $0045;
  112. layout5 = $0046;
  113. layout6 = $0047;
  114. layout7 = $0048;
  115. layout8 = $0049;
  116. layout9 = $004A;
  117. layout10 = $004B;
  118. layout11 = $004C;
  119. layout12 = $004D;
  120. layout13 = $004E;
  121. layout14 = $004F;
  122. layout15 = $0050;
  123. layout16 = $0051;
  124. aTalkNodeNo = $0080;
  125.  
  126. { GetAddr Parameter Reference Numbers }
  127. irqIntFlag = $0000;
  128. irqDataReg = $0001;
  129. irqSerial1 = $0002;
  130. irqSerial2 = $0003;
  131. irqAplTlkHi = $0004;
  132. tickCnt = $0005;
  133. irqVolume = $0006;
  134. irqActive = $0007;
  135. irqSndData = $0008;
  136. brkVar = $0009;
  137. evMgrData = $000A;
  138. mouseSlot = $000B;
  139. mouseClamps = $000C;
  140. absClamps = $000D;
  141. sccIntFlag = $000E;
  142.  
  143. { Hardware Interrupt Status Numbers }
  144. extVGCInt = $01;  { Returned by GetIRQEnable }
  145. scanLineInt = $02;  { Returned by GetIRQEnable }
  146. adbDataInt = $04;  { Returned by GetIRQEnable }
  147. ADTBDataInt = $04;  { maintained for compatiblity with old interfaces }
  148. oneSecInt = $10;  { Returned by GetIRQEnable }
  149. quartSecInt = $20;  { Returned by GetIRQEnable }
  150. vbInt = $40;  { Returned by GetIRQEnable }
  151. kbdInt = $80;  { Returned by GetIRQEnable }
  152.  
  153. { Interrupt Reference Numbers }
  154. kybdEnable = $0000;  { Parameter to IntSource }
  155. kybdDisable = $0001;  { Parameter to IntSource }
  156. vblEnable = $0002;  { Parameter to IntSource }
  157. vblDisable = $0003;  { Parameter to IntSource }
  158. qSecEnable = $0004;  { Parameter to IntSource }
  159. qSecDisable = $0005;  { Parameter to IntSource }
  160. oSecEnable = $0006;  { Parameter to IntSource }
  161. oSecDisable = $0007;  { Parameter to IntSource }
  162. adbEnable = $000A;  { Parameter to IntSource }
  163. adbDisable = $000B;  { Parameter to IntSource }
  164. scLnEnable = $000C;  { Parameter to IntSource }
  165. scLnDisable = $000D;  { Parameter to IntSource }
  166. exVCGEnable = $000E;  { Parameter to IntSource }
  167. exVCGDisable = $000F;  { Parameter to IntSource }
  168.  
  169. { Mouse Mode Values }
  170. mouseOff = $0000;
  171. transparent = $0001;
  172. transParnt = $0001;  { (old name) }
  173. moveIntrpt = $0003;
  174. bttnIntrpt = $0005;
  175. bttnOrMove = $0007;
  176. mouseOffVI = $0008;
  177. transParntVI = $0009;  { (old name) }
  178. transparentVI = $0009;
  179. moveIntrptVI = $000B;
  180. bttnIntrptVI = $000D;
  181. bttnOrMoveVI = $000F;
  182.  
  183. { Vector Reference Numbers }
  184. toolLoc1 = $0000;
  185. toolLoc2 = $0001;
  186. usrTLoc1 = $0002;
  187. usrTLoc2 = $0003;
  188. intrptMgr = $0004;
  189. copMgr = $0005;
  190. abortMgr = $0006;
  191. _sysFailMgr = $0007;
  192. aTalkIntHnd = $0008;
  193. sccIntHnd = $0009;
  194. scLnIntHnd = $000A;
  195. sndIntHnd = $000B;
  196. vblIntHnd = $000C;
  197. mouseIntHnd = $000D;
  198. qSecIntHnd = $000E;
  199. kybdIntHnd = $000F;
  200. adbRBIHnd = $0010;
  201. adbSRQHnd = $0011;
  202. deskAccHnd = $0012;
  203. flshBufHnd = $0013;
  204. kybdMicHnd = $0014;
  205. oneSecHnd = $0015;
  206. extVCGHnd = $0016;
  207. otherIntHnd = $0017;
  208. crsrUpdtHnd = $0018;
  209. incBsyFlag = $0019;
  210. decBsyFlag = $001A;
  211. bellVector = $001B;
  212. breakVector = $001C;
  213. traceVector = $001D;
  214. stepVector = $001E;
  215. ctlYVector = $0028;
  216. proDOSVector = $002A;
  217. proDOSVctr = $002A;  { for backward compatibility }
  218. osVector = $002B;
  219. msgPtrVector = $002C;
  220. msgPtrVctr = $002C;  { for backward compatibility }
  221. memMoverVector = $0080;
  222. sysSpeedVector = $0081;
  223. slotArbiterVector = $0082;
  224. hiInterruptVector = $0086;
  225. midiInterruptVector = $0087;
  226.  
  227. { ConvSeconds verbs }
  228. secs2TimeRec = 0;
  229. TimeRec2Secs = 1;
  230. secs2Text = 2;
  231. secs2ProDOS = 4;
  232. ProDOS2Secs = 5;
  233. getCurrTimeInSecs = 6;
  234. setCurrTimeInSecs = 7;
  235. ProDOS2TimeRec = 8;
  236. TimeRec2ProDOS = 9;
  237. secs2HCard = 10;
  238. HCard2Secs = 11;
  239.  
  240. { SysBeep2 constants }
  241. sbSilence = $8000;
  242. sbDefer = $4000;
  243. sbAlertStage0 = $0000;
  244. sbAlertStage1 = $0001;
  245. sbAlertStage2 = $0002;
  246. sbAlertStage3 = $0003;
  247. sbOutsideWindow = $0004;
  248. sbOperationComplete = $0005;
  249. sbBadKeypress = $0008;
  250. sbBadInputValue = $0009;
  251. sbInputFieldFull = $000A;
  252. sbOperationImpossible = $000B;
  253. sbOperationFailed = $000C;
  254. sbGSOStoP8 = $0011;
  255. sbP8toGSOS = $0012;
  256. sbDiskInserted = $0013;
  257. sbDiskEjected = $0014;
  258. sbSystemShutdown = $0015;
  259. sbDiskRequest = $0030;
  260. sbSystemStartup = $0031;
  261. sbSystemRestart = $0032;
  262. sbBadDisk = $0033;
  263. sbKeyClick = $0034;
  264. sbReturnKey = $0035;
  265. sbSpaceKey = $0036;
  266. sbWhooshOpen = $0040;
  267. sbWhooshClosed = $0041;
  268. sbFillTrash = $0042;
  269. sbEmptyTrash = $0043;
  270. sbAlertWindow = $0050;
  271. sbAlertStop = $0052;
  272. sbAlertNote = $0053;
  273. sbAlertCaution = $0054;
  274. sbScreenBlanking = $0060;
  275. sbScreenUnblanking = $0061;
  276. sbYouHaveMail = $0100;
  277. sbErrorWindowBase = $0E00; { uses $0Exx }
  278. sbErrorWindowOther = $0EFF;
  279.  
  280. { StringToText constants }
  281. fAllowMouseText = $8000;
  282. fAllowLongerSubs = $4000;
  283. fForceLanguage = $2000;
  284. fPassThru = $1000;
  285.  
  286. TYPE
  287. ClampRecHndl = ^ClampRecPtr;
  288. ClampRecPtr = ^ClampRec;
  289. ClampRec = RECORD
  290.     yMaxClamp : Integer;
  291.     yMinClamp : Integer;
  292.     xMaxClamp : Integer;
  293.     xMinClamp : Integer;
  294. END;
  295. FWRecHndl = ^FWRecPtr;
  296. FWRecPtr = ^FWRec;
  297. FWRec = RECORD
  298.     yRegExit : Integer;
  299.     xRegExit : Integer;
  300.     aRegExit : Integer;
  301.     status : Integer;
  302. END;
  303. MouseRecHndl = ^MouseRecPtr;
  304. MouseRecPtr = ^MouseRec;
  305. MouseRec = PACKED RECORD
  306.     mouseMode : Byte;
  307.     mouseStatus : Byte;
  308.     yPos : Integer;
  309.     xPos : Integer;
  310. END;
  311. InterruptStateRecHndl = ^InterruptStateRecPtr;
  312. InterruptStateRecPtr = ^InterruptStateRec;
  313. InterruptStateRec = PACKED RECORD
  314.     irq_A : Integer;
  315.     irq_X : Integer;
  316.     irq_Y : Integer;
  317.     irq_S : Integer;
  318.     irq_D : Integer;
  319.     irq_P : Byte;
  320.     irq_DB : Byte;
  321.     irq_e : Byte;
  322.     irq_K : Byte;
  323.     irq_PC : Integer;
  324.     irq_state : Byte;
  325.     irq_shadow : Integer;
  326.     irq_mslot : Byte;
  327. END;
  328. QueueHeaderRecPtr = ^QueueHeaderRec;
  329. QueueHeaderRec = RECORD
  330.     qNext : QueueHeaderRecPtr;
  331.     reserved : Integer;
  332.     signature : Integer; { Validates header - must be $A55A  }
  333. END;
  334. PROCEDURE AddToQueue ( newEntryPtr:Ptr; headerPtr:Ptr)  ;
  335. PROCEDURE ClampMouse ( xMinClamp:Integer; xMaxClamp:Integer; yMinClamp:Integer; yMaxClamp:Integer)  ;
  336. PROCEDURE ClearMouse   ;
  337. PROCEDURE ClrHeartBeat   ;
  338. FUNCTION ConvSeconds ( convVerb:Integer; seconds:LongInt; DatePtr: Ptr) : LongInt;
  339. PROCEDURE DelHeartBeat ( taskPtr:Ptr)  ;
  340. PROCEDURE DeleteFromQueue ( entryPtr:Ptr; headerPtr:Ptr)  ;
  341. PROCEDURE DeleteID ( idTag:Integer)  ;
  342. FUNCTION FWEntry ( aRegValue:Integer; xRegValue:Integer; yRegValue:Integer; eModeEntryPt:Integer) : FWRec ;
  343. FUNCTION GetAbsClamp  : ClampRec ;
  344. FUNCTION GetAddr ( refNum:Integer) : Ptr ;
  345. FUNCTION GetCodeResConverter  : ProcPtr ;
  346. FUNCTION GetIRQEnable  : Integer ;
  347. FUNCTION GetIntStateRecSize  : Integer ;
  348. PROCEDURE GetInterruptState (VAR iStateRec:InterruptStateRec; bytesDesired:Integer)  ;
  349. FUNCTION GetMouseClamp  : ClampRec ;
  350. FUNCTION GetNewID ( idTag:Integer) : Integer ;
  351. FUNCTION GetRomResource  : Ptr ;
  352. FUNCTION GetTick  : Longint ;
  353. FUNCTION GetVector ( vectorRefNum:Integer) : Ptr ;
  354. PROCEDURE HomeMouse   ;
  355. PROCEDURE InitMouse ( mouseSlot:Integer)  ;
  356. PROCEDURE IntSource ( srcRefNum:Integer)  ;
  357. PROCEDURE MTBootInit   ;
  358. PROCEDURE MTReset   ;
  359. PROCEDURE MTShutDown   ;
  360. PROCEDURE MTStartUp   ;
  361. FUNCTION MTStatus  : Boolean ;
  362. FUNCTION MTVersion  : Integer ;
  363. FUNCTION Munger ( destPtr:Ptr; destLenPtr:IntPtr; targPtr:Ptr; targLen:Integer; replPtr:Ptr; replLen:Integer; padPtr:Ptr) : Integer ;
  364. FUNCTION PackBytes (VAR srcBuffer:Ptr;VAR srcSize:Integer; dstBuffer:Ptr; dstSize:Integer) : Integer ;
  365. PROCEDURE PosMouse ( xPos:Integer; yPos:Integer)  ;
  366. PROCEDURE ReadAsciiTime ( bufferPtr:Ptr)  ;
  367. FUNCTION ReadBParam ( paramRefNum:Integer) : Integer ;
  368. PROCEDURE ReadBRam ( bufferPtr:Ptr)  ;
  369. FUNCTION ReadMouse  : MouseRec ;
  370. FUNCTION ReadMouse2  : MouseRec ;
  371. FUNCTION ReadTimeHex  : TimeRec ;
  372. PROCEDURE ReleaseRomResource   ;
  373. FUNCTION ServeMouse  : Integer ;
  374. PROCEDURE SetAbsClamp ( xMinClamp:Integer; xMaxClamp:Integer; yMinClamp:Integer; yMaxClamp:Integer)  ;
  375. PROCEDURE SetHeartBeat ( taskPtr:Ptr)  ;
  376. PROCEDURE SetInterruptState ( iStateRec:InterruptStateRec; bytesDesired:Integer)  ;
  377. PROCEDURE SetMouse ( mouseMode:Integer)  ;
  378. PROCEDURE SetVector ( vectorRefNum:Integer; vectorPtr:Ptr)  ;
  379. PROCEDURE StatusID ( idTag:Integer)  ;
  380. PROCEDURE SysBeep   ;
  381. PROCEDURE SysFailMgr ( errorCode:Integer; str:Str255)  ;
  382. FUNCTION UnPackBytes ( srcBuffer:Ptr; srcSize:Integer;VAR dstBuffer:Ptr;VAR dstSize:Integer) : Integer ;
  383. PROCEDURE WriteBParam ( theData:Integer; paramRefNum:Integer)  ;
  384. PROCEDURE WriteBRam ( bufferPtr:Ptr)  ;
  385. PROCEDURE WriteTimeHex ( month:Byte; day:Byte; curYear:Byte; hour:Byte; minute:Byte; second:Byte)  ;
  386.  
  387. PROCEDURE SysBeep2(beepType: integer);
  388. PROCEDURE VersionString(flags:integer; theVersion:longint; s:String32Ptr);
  389. FUNCTION WaitUntil(delayFrom, delayAmount:integer): integer;
  390. FUNCTION StringToText(flags:integer; textPtr:ptr; textLen:integer; resultPtr:ptr): longint;
  391. PROCEDURE ShowBootInfo(s:CStringPtr; theIcon: ptr);
  392. FUNCTION ScanDevices: INTEGER;
  393.  
  394. IMPLEMENTATION
  395. END.
  396.